Espressif Systems /ESP32 /EMAC_DMA /DMASTATUS

Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text

Interpret as DMASTATUS

31 2827 2423 2019 1615 1211 87 43 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 (TRANS_INT)TRANS_INT 0 (TRANS_PROC_STOP)TRANS_PROC_STOP 0 (TRANS_BUF_UNAVAIL)TRANS_BUF_UNAVAIL 0 (TRANS_JABBER_TO)TRANS_JABBER_TO 0 (RECV_OVFLOW)RECV_OVFLOW 0 (TRANS_UNDFLOW)TRANS_UNDFLOW 0 (RECV_INT)RECV_INT 0 (RECV_BUF_UNAVAIL)RECV_BUF_UNAVAIL 0 (RECV_PROC_STOP)RECV_PROC_STOP 0 (RECV_WDT_TO)RECV_WDT_TO 0 (EARLY_TRANS_INT)EARLY_TRANS_INT 0 (FATAL_BUS_ERR_INT)FATAL_BUS_ERR_INT 0 (EARLY_RECV_INT)EARLY_RECV_INT 0 (ABN_INT_SUMM)ABN_INT_SUMM 0 (NORM_INT_SUMM)NORM_INT_SUMM 0RECV_PROC_STATE 0TRANS_PROC_STATE 0ERROR_BITS 0 (PMT_INT)PMT_INT 0 (TS_TRI_INT)TS_TRI_INT

Description

State of interrupts, errors and other events

Fields

TRANS_INT

This bit indicates that the frame transmission is complete. When transmission is complete Bit[31] (OWN) of TDES0 is reset and the specific frame status information is updated in the Descriptor.

TRANS_PROC_STOP

This bit is set when the transmission is stopped.

TRANS_BUF_UNAVAIL

This bit indicates that the host owns the Next Descriptor in the Transmit List and the DMA cannot acquire it. Transmission is suspended. Bits[22:20] explain the Transmit Process state transitions. To resume processing Transmit descriptors the host should change the ownership of the descriptor by setting TDES0[31] and then issue a Transmit Poll Demand Command.

TRANS_JABBER_TO

This bit indicates that the Transmit Jabber Timer expired which happens when the frame size exceeds 2 048 (10 240 bytes when the Jumbo frame is enabled). When the Jabber Timeout occurs the transmission process is aborted and placed in the Stopped state. This causes the Transmit Jabber Timeout TDES0[14] flag to assert.

RECV_OVFLOW

This bit indicates that the Receive Buffer had an Overflow during frame reception. If the partial frame is transferred to the application the overflow status is set in RDES0[11].

TRANS_UNDFLOW

This bit indicates that the Transmit Buffer had an Underflow during frame transmission. Transmission is suspended and an Underflow Error TDES0[1] is set.

RECV_INT

This bit indicates that the frame reception is complete. When reception is complete the Bit[31] of RDES1 (Disable Interrupt on Completion) is reset in the last Descriptor and the specific frame status information is updated in the descriptor. The reception remains in the Running state.

RECV_BUF_UNAVAIL

This bit indicates that the host owns the Next Descriptor in the Receive List and the DMA cannot acquire it. The Receive Process is suspended. To resume processing Receive descriptors the host should change the ownership of the descriptor and issue a Receive Poll Demand command. If no Receive Poll Demand is issued the Receive Process resumes when the next recognized incoming frame is received. This bit is set only when the previous Receive Descriptor is owned by the DMA.

RECV_PROC_STOP

This bit is asserted when the Receive Process enters the Stopped state.

RECV_WDT_TO

When set this bit indicates that the Receive Watchdog Timer expired while receiving the current frame and the current frame is truncated after the watchdog timeout.

EARLY_TRANS_INT

This bit indicates that the frame to be transmitted is fully transferred to the MTL Transmit FIFO.

FATAL_BUS_ERR_INT

This bit indicates that a bus error occurred as described in Bits [25:23]. When this bit is set the corresponding DMA engine disables all of its bus accesses.

EARLY_RECV_INT

This bit indicates that the DMA filled the first data buffer of the packet. This bit is cleared when the software writes 1 to this bit or when Bit[6] (RI) of this register is set (whichever occurs earlier).

ABN_INT_SUMM

Abnormal Interrupt Summary bit value is the logical OR of the following when the corresponding interrupt bits are enabled in Interrupt Enable Register: Bit[1]: Transmit Process Stopped. Bit[3]: Transmit Jabber Timeout. Bit[4]: Receive FIFO Overflow. Bit[5]: Transmit Underflow. Bit[7]: Receive Buffer Unavailable. Bit[8]: Receive Process Stopped. Bit[9]: Receive Watchdog Timeout. Bit[10]: Early Transmit Interrupt. Bit[13]: Fatal Bus Error. Only unmasked bits affect the Abnormal Interrupt Summary bit. This is a sticky bit and must be cleared (by writing 1 to this bit) each time a corresponding bit which causes AIS to be set is cleared.

NORM_INT_SUMM

Normal Interrupt Summary bit value is the logical OR of the following bits when the corresponding interrupt bits are enabled in Interrupt Enable Register: Bit[0]: Transmit Interrupt. Bit[2]: Transmit Buffer Unavailable. Bit[6]: Receive Interrupt. Bit[14]: Early Receive Interrupt. Only unmasked bits affect the Normal Interrupt Summary bit.This is a sticky bit and must be cleared (by writing 1 to this bit) each time a corresponding bit which causes NIS to be set is cleared.

RECV_PROC_STATE

This field indicates the Receive DMA FSM state. This field does not generate an interrupt. 3’b000: Stopped. Reset or Stop Receive Command issued. 3’b001: Running. Fetching Receive Transfer Descriptor. 3’b010: Reserved for future use. 3’b011: Running. Waiting for RX packets. 3’b100: Suspended. Receive Descriptor Unavailable. 3’b101: Running. Closing Receive Descriptor. 3’b110: TIME_STAMP write state. 3’b111: Running. Transferring the TX packets data from receive buffer to host memory.

TRANS_PROC_STATE

This field indicates the Transmit DMA FSM state. This field does not generate an interrupt. 3’b000: Stopped. Reset or Stop Transmit Command issued. 3’b001: Running. Fetching Transmit Transfer Descriptor. 3’b010: Reserved for future use. 3’b011: Running. Waiting for TX packets. 3’b100: Suspended. Receive Descriptor Unavailable. 3’b101: Running. Closing Transmit Descriptor. 3’b110: TIME_STAMP write state. 3’b111: Running. Transferring the TX packets data from transmit buffer to host memory.

ERROR_BITS

This field indicates the type of error that caused a Bus Error for example error response on the AHB interface. This field is valid only when Bit[13] (FBI) is set. This field does not generate an interrupt. 3’b000: Error during Rx DMA Write Data Transfer. 3’b011: Error during Tx DMA Read Data Transfer. 3’b100: Error during Rx DMA Descriptor Write Access. 3’b101: Error during Tx DMA Descriptor Write Access. 3’b110: Error during Rx DMA Descriptor Read Access. 3’b111: Error during Tx DMA Descriptor Read Access.

PMT_INT

This bit indicates an interrupt event in the PMT module of the ETH_MAC. The software must read the PMT Control and Status Register in the MAC to get the exact cause of interrupt and clear its source to reset this bit to 1’b0.

TS_TRI_INT

This bit indicates an interrupt event in the Timestamp Generator block of the ETH_MAC.The software must read the corresponding registers in the ETH_MAC to get the exact cause of the interrupt and clear its source to reset this bit to 1’b0.

Links

() ()